The design structure matrix (DSM) (also referred to as dependency structure method, dependency structure matrix, problem solving matrix (PSM), incidence matrix, n-square matrix or design precedence matrix) is a compact, matrix representation of a system or project. The approach can be used to model complex systems in systems engineering or systems analysis, and in project planning and project management.
Contents |
A design structure matrix lists all constituent subsystems/activities and the corresponding information exchange and dependency patterns. In other words, it details what pieces of information are needed to start a particular activity, and shows where the information generated by that activity leads. In this way, one can quickly recognise which other tasks are reliant upon information outputs generated by each activity.
It has two main strengths. First, it can represent a large number of system elements and their relationships in a compact way that highlights important patterns in the data (such as feedback loops and modules). Second, it is amenable to matrix-based analysis techniques, which can be used to improve the structure of the system.
DSM analysis provides insights into how to manage complex systems or projects, highlighting information flows, task sequences and iteration. It can help teams to streamline their processes based on the optimal flow of information between different interdependent activities.
DSM analysis can also be used to manage the effects of change. For example, if the specification for a component had to be changed, it would be possible to quickly identify all processes or activities which had been dependent on that specification, reducing the risk that work continues based on out-of-date information.
A DSM is a square matrix. The cells along the diagonal represent the system elements, which are often labeled in the rows to the left of the matrix and/or in the columns above the matrix. The off-diagonal cells are used to indicate relationships between the elements. Reading across a row reveals what other elements the element in that row provides outputs to, and scanning a column reveals what other elements the element in that column receives inputs from. Alternatively, the rows and columns may be switched (without a change of meaning).
Two main categories of DSMs have been proposed: static and time-based. Static DSMs represent systems where all of the elements exist simultaneously, such as components of a machine or groups in an organization. Static DSMs are usually analyzed with clustering algorithms. In time-based DSMs, the ordering of the rows and columns indicates a flow through time: earlier activities in a process appear in the upper-left of the DSM and later activities appear in the lower-right. Terms like “feedforward” and “feedback” become meaningful when referring to interfaces. Time-based DSMs are typically analyzed using sequencing algorithms.
DSMs stem from diverse roots. A static DSM is equivalent to an N-square diagram or an incidence matrix. A time-based DSM is akin to a precedence diagram or the matrix representation of a directed graph. The time-based DSM (and the "DSM" term itself) originated with Don Steward, who coined the term “design structure matrix” in the 1960s. Steward's DSM grew from the use of matrices to solve mathematical systems of equations. Christopher Alexander presented a similar matrix-based design method in his 1964 book Notes on the Synthesis of Form.
The use of DSMs in both research and industrial practice increased greatly in the 1990s. DSMs have been applied in the building construction, real estate development, semiconductor, automotive, photographic, aerospace, telecom, small-scale manufacturing, factory equipment, and electronics industries, to name a few, as well as in many government agencies.
A small number of computer software applications incorporate dependency structure matrices. The leaders in this field include AML Technologies' ADePT Design Builder (employed in construction, defense and aerospace projects), Lattix, Inc. LDM (used to manage software architecture), DeMAID/GA, Acclaro and Problematics, NDepend (for analysis of .NET applications). The latest version of the Java IDE IntelliJ IDEA 7.0 includes project dependency structure management since v7.0 Milestone 2. There is an open source DSM application dtangler for analyzing java code. There is also a free DSM plugin for .NET Reflector.